#include <iostream>

using std::cout;
using std::endl;

//作用域与可见域的区别
//可见域：可以看到的区域
//如果没有屏蔽现象（同名现象），那么可见域与作用域是等价的，但是如果
//有屏蔽现象，那么作用域大于可见域
int number = 1;//全局变量, 全局作用域

namespace wd
{
int number = 20;//命名空间作用域

class Example
{
public:
    Example(int value = 0)
    : number(value)
    {

    }

    void print(int number)//局部作用域
    {
        cout << "形参number = " << number << endl;
        cout << "数据成员number = " << this->number << endl;
        cout << "数据成员number = " << Example::number << endl;
        cout << "命名空间number = " << wd::number << endl;
        cout << "全局number = " << ::number << endl;
    }
private:
    int number;//类作用域
};

}//end of namespace std

int main(int argc, char *argv[])
{
    wd::Example ex(300);
    ex.print(4000);
    return 0;
}

